/*
 * FileName: FutureData.java
 * Author:   zzw
 * Date:     2018年05月21日
 * Description:
 */
package com.zzw.thread.future;

/**
 * 〈〉<br>
 * 〈〉
 *
 * @author zzw
 * @see [相关类/方法]（可选）
 * @since [产品/模块版本]（可选）
 */
public class FutureData implements Data {

    protected RealData realData = null;
    protected boolean isReady = false;

    public  synchronized void setRealData(RealData realData){
        if(isReady){
            return;
        }
        this.realData = realData;
        isReady = true;
        notify();
    }

    @Override
    public String getResult() {
        while (!isReady){
            try {
                wait();
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
        return realData.result;
    }
}
